package com.desay.pangoo.itmt.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.desay.pangoo.itmt.controller.vo.TechProjectStatusVo;
import com.desay.pangoo.itmt.controller.vo.TechProjectTopicVo;
import com.desay.pangoo.itmt.entity.TechProjectStatusEntity;
import com.desay.pangoo.itmt.entity.TechProjectTopicEntity;

/**
 * 
 * @author uidq1163
 *
 */
public interface TechProjectStatusService {

	/**
	 * 添加课题状态申请
	 * 
	 * @param groupName
	 * @return
	 */
	Long create(TechProjectStatusVo vo);

	/**
	 * 添加项目信息
	 * 
	 * @param vo
	 * @return
	 */
	Long createTopic(TechProjectTopicVo vo);

	/**
	 * 
	 * @param pageSize
	 * @param pageNum
	 * @param auditStatus
	 * @param taskStatus
	 * @param approvalStatus
	 * @param creator
	 * @return
	 */
	Page<TechProjectStatusEntity> getList(Integer pageSize, Integer pageNum, Integer auditStatus, Integer taskStatus,
			Integer approvalStatus, String creator);

	/**
	 * 更新
	 * 
	 * @param id
	 * @param vo
	 */
	void update(Long id, TechProjectStatusVo vo);

	/**
	 * 技术定义审核
	 * 
	 * @param id
	 * @param vo
	 */
	void audit(Long id, TechProjectStatusVo vo);

	/**
	 * 任务书审核
	 * 
	 * @param id
	 * @param vo
	 */
	void task(Long id, TechProjectStatusVo vo);

	/**
	 * 结项评审
	 * 
	 * @param id
	 * @param vo
	 */
	void approval(Long id, TechProjectStatusVo vo);

	/**
	 * 更新课题关联项目信息
	 * 
	 * @param id
	 * @param vo
	 */
	void updateTopic(Long id, TechProjectTopicVo vo);

	/**
	 * 获取所有课题关联项目信息
	 * 
	 * @return
	 */
	List<TechProjectTopicEntity> getAllTopicList();

	TechProjectStatusEntity getInfoById(Long id);

}
